#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include<QMainWindow>
#include<QString>
#include<qlist.h>
#include<QtCore>

#include<QStack>
#include<QVector>
#include<QChar>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow

{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

    QString str="#";

//    double Do();
//    double Cal(double a,char b,double c);
//    int Prior(char c);


    //设置文本右对齐
    void on_actionRight_triggered();

    //关键点-------四则运算表达式字符串得到数学结果
    double calculate(QString s);
    int precedence(QChar op);

private slots:

    //为每个键设置对应的槽函数
    void pbtnf_0();
    void pbtnf_1();
    void pbtnf_2();
    void pbtnf_3();
    void pbtnf_4();
    void pbtnf_5();
    void pbtnf_6();
    void pbtnf_7();
    void pbtnf_8();
    void pbtnf_9();
    void pbtnf_AC();
    void pbtnf_dengyu();
    void pbtnf_point();
    void pbtnf_rightbracket();
    void pbtnf_leftbracket();
    void pbtnf_add();
    void pbtnf_minus();
    void pbtnf_multiply();
    void pbtnf_divide();

    //定义几个纠错函数
    void bracketdigiterror();
    void digitbracketerror();
    int bracketerror();



private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
